package com.ssy.lingxi.pay.common;

import com.ssy.lingxi.common.language.LanguageHolder;

import java.util.Arrays;

/**
 * 授信申请上级内部状态
 * @author 伍将
 * @date 2021/1/12
 * @version 2.0.0
 */
public enum CreditApplySuperiorInnerStatusEnum {

    ALL(0, "所有"),
    /**
     * 待提交审核 - 1
     */
    WAIT_SUBMIT(1, "待提交审核"),
    /**
     * 提交审核失败
     */
    SUBMIT_VERIFY_FAIL(2, "提交审核失败"),
    /**
     * 待审核一级（提交审核成功）
     */
    SUBMIT_VERIFY_SUCCESS(3, "待审核(一级)"),
    /**
     * 一级审核失败
     */
    STEP1_VERIFY_FAIL(4, "审核不通过(一级)"),
    /**
     * 待审核二级（一级审核成功）
     */
    STEP1_VERIFY_SUCCESS(5, "待审核(二级)"),
    /**
     * 二级审核失败
     */
    STEP2_VERIFY_FAIL(6, "审核不通过(二级)"),
    /**
     * 待审核三级（二级审核成功）
     */
    STEP2_VERIFY_SUCCESS(7, "待审核(三级)"),
    /**
     * 三级审核失败（待确认审核）
     */
    STEP3_VERIFY_FAIL(8, "审核不通过(三级)"),
    /**
     * 待确认审核（三级审核成功）
     */
    STEP3_VERIFY_SUCCESS(9, "待确认"),
    /**
     * 审核不通过
     */
    VERIFY_FAIL(10, "已确认(不通过)"),
    /**
     * 审核通过
     */
    VERIFY_SUCCESS(11, "已确认(通过)");

    private final Integer code;

    CreditApplySuperiorInnerStatusEnum(Integer code, String message) {
        this.code = code;
    }

    public Integer getCode() {
        return code;
    }

    public String getMessage() {
        return LanguageHolder.getName(this.getClass(),this.code);
    }


    public static String getItemMessage(Integer code) {
        return Arrays.stream(CreditApplySuperiorInnerStatusEnum.values()).filter(e -> e.getCode().equals(code)).findFirst().orElse(ALL).getMessage();
    }
}
